/*-----------------------------------------------------------------------------
rom_exp_sig_gen_paral
Created (09.01.2013)
Created by Alina Ivanova
Modified (date, by whom)
Version 1.0
rom for test exponentional signal generator
-------------------------------------------------------------------------------
SystemVerilog rom_exp_sig_gen_paral
-------------------------------------------------------------------------------*/
//-----------------------------------------------------------------------------
module rom_exp_sig_gen
#(
// Parameter Declarations
	parameter SIZE_ADC_DATA                                  = 11;
	parameter SIZE_FILTER_DATA                               = 15;
	parameter SIZE_DELAY                                     = 7;
	parameter SIZE_TEST_RAM_ADDR                             = 6
)
(
//-----------------------------------------------------------------------------
// Input Ports
//-----------------------------------------------------------------------------
	input  wire                                              clk,
	input  wire                                              reset,
//-----------------------------------------------------------------------------
	input  wire [SIZE_TEST_RAM_ADDR:0]                       address,
//-----------------------------------------------------------------------------
// Output Ports
//-----------------------------------------------------------------------------
	output reg  [SIZE_ADC_DATA:0]                            output_data);
//-----------------------------------------------------------------------------
// Signal declarations
//-----------------------------------------------------------------------------
	reg         [SIZE_ADC_DATA:0]                            q;
//-----------------------------------------------------------------------------
// Process Section
//-----------------------------------------------------------------------------
	always @ (posedge clk or negedge reset)
	begin
		if (!reset)
			output_data                                       <= 0;
		else
			output_data                                       <= q << 3;
	end
//-----------------------------------------------------------------------------
	always @(posedge clk)
	begin
		case(address)
			  0: q                                            <= 0;
			  1: q                                            <= 0;
			  2: q                                            <= 388;
			  3: q                                            <= 367;
			  4: q                                            <= 346;
			  5: q                                            <= 327;
			  6: q                                            <= 309;
			  7: q                                            <= 292;
			  8: q                                            <= 275;
			  9: q                                            <= 260;
			 10: q                                            <= 246;
			 11: q                                            <= 232;
			 12: q                                            <= 219;
			 13: q                                            <= 207;
			 14: q                                            <= 195;
			 15: q                                            <= 184;
			 16: q                                            <= 174;
			 17: q                                            <= 164;
			 18: q                                            <= 155;
			 19: q                                            <= 147;
			 20: q                                            <= 138;
			 21: q                                            <= 131;
			 22: q                                            <= 123;
			 23: q                                            <= 117;
			 24: q                                            <= 110;
			 25: q                                            <= 104;
			 26: q                                            <= 98;
			 27: q                                            <= 93;
			 28: q                                            <= 87;
			 29: q                                            <= 83;
			 30: q                                            <= 78;
			 31: q                                            <= 74;
			 32: q                                            <= 70;
			 33: q                                            <= 66;
			 34: q                                            <= 62;
			 35: q                                            <= 58;
			 36: q                                            <= 55;
			 37: q                                            <= 52;
			 38: q                                            <= 49;
			 39: q                                            <= 46;
			 40: q                                            <= 44;
			 41: q                                            <= 41;
			 42: q                                            <= 39;
			 43: q                                            <= 37;
			 44: q                                            <= 35;
			 45: q                                            <= 33;
			 46: q                                            <= 31;
			 47: q                                            <= 29;
			 48: q                                            <= 28;
			 49: q                                            <= 26;
			 50: q                                            <= 25;
			 51: q                                            <= 23;
			 52: q                                            <= 22;
			 53: q                                            <= 21;
			 54: q                                            <= 19;
			 55: q                                            <= 18;
			 56: q                                            <= 17;
			 57: q                                            <= 16;
			 58: q                                            <= 15;
			 59: q                                            <= 14;
			 60: q                                            <= 14;
			 61: q                                            <= 13;
			 62: q                                            <= 12;
			 63: q                                            <= 11;
			 64: q                                            <= 11;
			 65: q                                            <= 10;
			 66: q                                            <= 10;
			 67: q                                            <= 9;
			 68: q                                            <= 8;
			 69: q                                            <= 8;
			 70: q                                            <= 7;
			 71: q                                            <= 7;
			 72: q                                            <= 7;
			 73: q                                            <= 6;
			 74: q                                            <= 6;
			 75: q                                            <= 5;
			 76: q                                            <= 5;
			 77: q                                            <= 5;
			 78: q                                            <= 5;
			 79: q                                            <= 4;
			 80: q                                            <= 4;
			 81: q                                            <= 4;
			 82: q                                            <= 4;
			 83: q                                            <= 3;
			 84: q                                            <= 3;
			 85: q                                            <= 3;
			 86: q                                            <= 3;
			 87: q                                            <= 3;
			 88: q                                            <= 2;
			 89: q                                            <= 2;
			 90: q                                            <= 2;
			 91: q                                            <= 2;
			 92: q                                            <= 2;
			 93: q                                            <= 2;
			 94: q                                            <= 2;
			 95: q                                            <= 1;
			 96: q                                            <= 1;
			 97: q                                            <= 1;
			 98: q                                            <= 1;
			 99: q                                            <= 1;
			100: q                                            <= 1;
			101: q                                            <= 1;
			102: q                                            <= 1;
			103: q                                            <= 1;
			104: q                                            <= 1;
			105: q                                            <= 1;
			106: q                                            <= 1;
			107: q                                            <= 0;
			108: q                                            <= 0;
			109: q                                            <= 0;
			110: q                                            <= 0;
			default: q                                        <= 0;
		endcase;
	end
//-----------------------------------------------------------------------------
endmodule
